package com.edt.ichannel.api.dao;

import com.edt.ichannel.api.entiy.local.Staff;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Staff数据访问类
 * @author 孙梁
 * @date 2018-06-12
 */
public interface StaffDao{

    /**
    * 获取单条信息
    *
    * @param id 拓展人id
    * @return Staff
    * @author  孙梁
    * @date 2018-06-12
    */
    Staff getStaffById(String id);


    /**
     * 给拓展人账户添加月
     * @param money, staffId
     *             发展奖，拓展人id
     * @author 孙梁
     * 2018/6/12 14:34
     */
    void addStaffAccountMoney(@Param("bonusMoney") double money, @Param("staffId") String staffId);

    /**
     * 给拓展人账户减少余额
     * @param money, staffId
     *             减少值，拓展人id
     * @author 孙梁
     * 2018/6/12 14:34
     */
    void minusStaffAccountMoney(@Param("money") double money, @Param("staffId") String staffId);



    /**
     * 批量插入数据到临时表
     * @author 孙梁
     * 2018/7/10 15:39
     */

    void addStaffList(List<Staff> addMechanismsList);

    /**
     * 批量更新数据
     * @author 孙梁
     * 2018/7/10 15:39
     */
    void updateStaffList(List<Staff> updateMechanismsList);
    /**
     * 将小微渠道中组织机构和拓展人组织机构不同的数据的组织结构替换为拓展人组织机构
     * @author 孙梁
     * 2018/7/10 15:30
     */

    void updateExpansionMechanismsIdDifferent();


    /**
     * 将临时表中内容，本地没有的添加到人员表
     * @author 孙梁
     * 2018/7/11 13:37
     */
    void addStaffFromStaffDblink();

    /**
     * 将临时表中内容，本地有的的更新到人员表
     * @author 孙梁
     * 2018/7/11 13:37
     */
    void mergeStaffFromStaffDblink();

    /**
     * 清空临时表
     * @author 孙梁
     * 2018/7/11 13:58
     */

    void deleteAllDBlink();

    /**
     * 从dblink拿拓展人
     * @return java.util.List<com.edt.ichannel.api.entiy.local.Mechanisms>
     *              读取结果
     * @author 孙梁
     * 2018/7/10 14:43
     */
    List<Staff> selectHrStaffByDBLink();

    /**
     * 更新账户余额
     * @param accountMoney, staffId
     *             新余额,人员id
     * @author 孙梁
     * 2018/7/17 16:43
     */
    void upDateAccountMoney(@Param("accountMoney") double accountMoney, @Param("staffId") String staffId);

    /**
     * 更新人员佣金总额
     * @param addMoney, staffId
     *             佣金，拓展人id
     * @author 孙梁
     * 2018/6/12 14:34
     */
    void addStaffCommissionMoney(@Param("addMoney") double addMoney, @Param("staffId") String staffId);

    /**
     * 更新人员发展奖总额
     * @param addMoney, staffId
     *             发展奖，拓展人id
     * @author 孙梁
     * 2018/6/12 14:34
     */
    void addStaffBonusMoney(@Param("addMoney") double addMoney, @Param("staffId") String staffId);

    /**
     * 同步dblink数据到临时表
     * 2018/10/12 13:17
     */
    void mergeStaffFromDblink();
}